//-----------------------------------------------------------------------------
//  Copyright (C) 2005-2008 Thomas S. Ullrich 
//
//  This file is part of the Solitaire Mahjong project.
//
//  This file may be used under the terms of the GNU General Public License.
//  This project is free software; you can redistribute it and/or modify it
//  under the terms of the GNU General Public License.
//  
//  Author: Thomas S. Ullrich
//  Last update: November 14, 2008
//-----------------------------------------------------------------------------
#ifndef smDefinitions_h
#define smDefinitions_h

#define PR(x) cout << #x << " = " << (x) << endl;

//
//  Tiles and Tile Sets
//

enum smTileSetId { classic = 0,
                   NumberOfTileSets
};

const char* const smTileSetDirectory[] =
{"classic"};

enum smTileSize { small=0, medium, large, veryLarge, NumberOfTileSizes };

const char* const smTileSetSubdirectory[] = {"55", "70", "85", "100"};

const int smMaxNumberOfTiles = 144;

enum smTileId { Char_1 = 0,    // "Character" suit
                Char_2,
                Char_3,
                Char_4,
                Char_5,
                Char_6,
                Char_7,
                Char_8,
                Char_9,
                Wheel_1,       // "Wheel" suit
                Wheel_2,
                Wheel_3,
                Wheel_4,
                Wheel_5,
                Wheel_6,
                Wheel_7,
                Wheel_8,
                Wheel_9,
                Bamboo_1,      // "Bamboo" suit
                Bamboo_2,
                Bamboo_3,
                Bamboo_4,
                Bamboo_5,
                Bamboo_6,
                Bamboo_7,
                Bamboo_8,
                Bamboo_9,
                Wind_North,    // Winds
                Wind_South,
                Wind_East,
                Wind_West,
                Dragon_Green,  // Dragons
                Dragon_Red,
                Dragon_White,
                Season_1,      // Seasons
                Season_2,
                Season_3,
                Season_4,
                Flower_1,      // Flowers
                Flower_2,
                Flower_3,
                Flower_4,
                NumberOfTiles
};

const char* const smTileName[] =
{"Char_1",
"Char_2",
"Char_3",
"Char_4",
"Char_5",
"Char_6",
"Char_7",
"Char_8",
"Char_9",
"Wheel_1",
"Wheel_2",
"Wheel_3",
"Wheel_4",
"Wheel_5",
"Wheel_6",
"Wheel_7",
"Wheel_8",
"Wheel_9",
"Bamboo_1",
"Bamboo_2",
"Bamboo_3",
"Bamboo_4",
"Bamboo_5",
"Bamboo_6",
"Bamboo_7",
"Bamboo_8",
"Bamboo_9",
"Wind_North",
"Wind_South",
"Wind_East",
"Wind_West",
"Dragon_Green",
"Dragon_Red",
"Dragon_White",
"Season_1",
"Season_2",
"Season_3",
"Season_4",
"Flower_1",
"Flower_2",
"Flower_3",
"Flower_4" };

const char* const smDisplayTileName[] =
{"Character 1",
"Character 2",
"Character 3",
"Character 4",
"Character 5",
"Character 6",
"Character 7",
"Character 8",
"Character 9",
"Wheel 1",
"Wheel 2",
"Wheel 3",
"Wheel 4",
"Wheel 5",
"Wheel 6",
"Wheel 7",
"Wheel 8",
"Wheel 9",
"Bamboo 1",
"Bamboo 2",
"Bamboo 3",
"Bamboo 4",
"Bamboo 5",
"Bamboo 6",
"Bamboo 7",
"Bamboo 8",
"Bamboo 9",
"North Wind",
"South Wind",
"East Wind",
"West Wind",
"Green Dragon",
"Red Dragon",
"White Dragon",
"Spring - matches any other season",
"Summer - matches any other season",
"Autumn - matches any other season",
"Winter - matches any other season",
"Bamboo - matches any other flower",
"Plum - matches any other flower",
"Orchid - matches any other flower",
"Chrysanthemum - matches any other flower" };

//
//  Layouts
//

enum smTileLayoutId { turtle = 0,
                      NumberOfTileLayouts
};

const char* const smTileLayoutName[] =
{"turtle"};

const unsigned int smMaxHighscoreEntries = 10;

#endif
